Day6-新手學Docker 0x2
正文
Docker image
- user name:使用者名稱
- repo name:倉庫名稱
- tag name:要分辨同一個倉庫中的不同映像檔
- 官方的image通常只有repo name、tag name,官方的tag name通常拿來標記來自同樣repo的image,例如 ubuntu有好幾個發行版,就是用tag來分辨。最常用的官方名稱有 trusy、precise、utopic作為tag。
-
docker image
:查看本機中有哪些image
- -a:列出詳細image層次資訊
- -q:只印出image ID
-
docker pull <user name>/<repo name>:<tag name>
:下載image檔
-
docker save -o <file name>.tar <user name>/<repo name>:<tag name>
:匯出電腦格式檔案(tarball)
-
docker load --input <檔案名稱>.tar
:將tar檔 -> image
-
docker rmi <user name>/<repo name>:<tag name>
:刪除image
- -f:強迫刪除
- --no-prune=true:image是以層次來存放,一個image有多個層次,這個指令只會刪除有tag name的image,標準的image只會刪掉第一層。因為建立的時候其他中間的層次不會有tag name。這個指令的好處是能夠留下許多image共用的母層次
- docker rmi -f $(docker images -aq):一次刪除所有image
-
docker tag <user name>/<repo name>:<tag name> <user name>/<repo name>:<tag name>
:更改tag (前:原本的,後:要更改的)
Docker Container
-
container觀念:在還沒有執行docker run/create
之前,container是不存在的,當執行並開始消耗系統資源時代表他是活的,當執行完畢後,代表他是死的,但並沒有消失,要執行docker rm <container name>
過後才徹底消失
-
docker run/create <image name>
:建立container並執行指令
- --name :給container命名
- -d:背景執行
- docker run --name test -p 8080:80 /:把主機的8080通訊埠所有流量轉發到test這個Container的80通訊埠。
-
docker ps
:查看執行中的container
-
docekr rm
:刪除container,執行中或停止的都可以
-
docker kill
:刪除執行中的container,但還是存在著
-
stop
:停止執行中的Container
-
start
:啟動停止中的Container
-
restart
:重新啟動Container
給container輸入輸出裝置
container可以被視為一部電腦,所以也可以有鍵盤螢幕,這裡的鍵盤螢幕是指linux輸入的stdin和輸出的stdout
- -t:連線時Container的螢幕會接到原來的螢幕上(為目前操作的終端機視窗)
- -i:連線時鍵盤輸入會被Container接手
- 範例:docker run -it --name
執行以上指令後會發現,Linux的提示符號從$變成了#,表示已經從原來的主機進入到container裡面的內部操作了
讓container能一直活著提供服務
- 讓container執行一個沒辦法停止的指令並把container丟入背景
- docker run -d ping localhost
- 把container丟入背景並給他輸入輸出的功能
監視container
-
docker attach
:使用這項指令後就會進入到container的終端機
- 依據執行docker run 這個指令所配的參數,再離開container終端機時,
- -d/-id:離開Container時該Container停止
- -td:離開Container時Container還會繼續在背景執行